﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using RCA1._0.DAL_WS;

namespace RCA1._0
{
    public partial class ThemChiNhanh_VanPhongDaiDien : Form
    {
        public ThemChiNhanh_VanPhongDaiDien()
        {
            InitializeComponent();
        }

        private DAL_WSSoapClient wsDAL = new DAL_WSSoapClient();

        private ChiNhanhDTO CNhanh = new ChiNhanhDTO();
        private ChiNhanhDTO chiNhanhSua = new ChiNhanhDTO();
        private List<ChiNhanhDTO> dSachCNhanh = null;

        private VanPhongDaiDienDTO VPDDien = new VanPhongDaiDienDTO();
        private VanPhongDaiDienDTO vanPhongDDSua = new VanPhongDaiDienDTO();
        private List<VanPhongDaiDienDTO> dSachVPDDien = null;

        //List<VanPhongDaiDienDTO> dSachVPDDien;
        //List<ChiNhanhDTO> dSachCNhanh;

        public CONGTYDTO congTy;
        private void ThemChiNhanh_VanPhongDaiDien_Load(object sender, EventArgs e)
        {
            

            VPDDien = new VanPhongDaiDienDTO();
            vanPhongDDSua = new VanPhongDaiDienDTO();

            labTenCongTy.Text = congTy.TenCongTy;

            LayDanhSachChiNhanhMoi();
            LayDanhSachVPDDienMoi();
        }


        #region "Lấy danh sách mới"

        void LayDanhSachVPDDienMoi() 
        {
            //Làm mới 2 đối tượng Văn Phòng Đại Diện và Văn Phòng Đại Diện Sửa
            VPDDien = new VanPhongDaiDienDTO();
            vanPhongDDSua = new VanPhongDaiDienDTO();

            //dSachVPDDien = wsDAL.GetDanhSachVanPhongDaiDienTheoIDCongTy(congTy.IDCongTy);
            dSachVPDDien = new List<VanPhongDaiDienDTO>(wsDAL.GetDanhSachVanPhongDaiDienTheoMaCongTy(congTy.IDCongTy));
            dtgvDSVanPhongDaiDien.DataSource = dSachVPDDien;
        }
        void LayDanhSachChiNhanhMoi()
        {
            //Làm mới 2 đối tượng Chi Nhánh và Chi Nhánh Sửa
            CNhanh = new ChiNhanhDTO();
            chiNhanhSua = new ChiNhanhDTO();

            //dSachCNhanh = new List<ChiNhanhDTO>(wsDAL.GetDanhSachChiNhanhTheoMaCongTy(congTy.IDCongTy));
            dtgvDSChiNhanh.DataSource = dSachCNhanh;
        }
        #endregion
        

        #region "Làm rỗng thông tin"

        private void LamTrangThongTinChiNhanh()
        {
            txtHienThiDiaChiChiNhanh.Text = "";
            txtHienThiDienThoaiChiNhanh.Text = "";
        }
        private void LamTrangThongTinVPDDien()
        {
            txtHienThiDiaChiVanPhongDaiDien.Text = "";
            txtHienThiDienThoaiVanPhongDaiDien.Text = "";
        }
        #endregion


        #region "Thể hiện thông tin"

        void TheHienThongTinChiNhanh()
        {
            //Thể hiện thông tin chi nhánh khi cell click từ dtgvDSChiNhanh
            txtHienThiDiaChiChiNhanh.Text = CNhanh.DiaChiChiNhanh;
            txtHienThiDienThoaiChiNhanh.Text = CNhanh.DienThoaiCN;            
        }

        void TheHienThongTinVanPhongDaiDien()
        {
            //Thể hiện thông tin văn phòng đại diện khi cell click từ dtgvDSVanPhongDaiDien
            txtHienThiDiaChiVanPhongDaiDien.Text = VPDDien.DiaChiVanPhongDaiDien;
            txtHienThiDienThoaiVanPhongDaiDien.Text = VPDDien.DienThoaiVPDD;

        }
        #endregion


        #region "Kiểm tra"
        private string kiemTraCN()
        {
            string error = "";
            bool hopLe = true;

            hopLe = this.txtThemDiaChiChiNhanh.Text != "";
            if (!hopLe)
            {
                error += "Địa chỉ chi nhánh không được để trống .\n ";
            }
            hopLe = this.txtThemDienThoaiChiNhanh.Text != "";
            if (!hopLe)
            {
                error += "Bạn chưa nhập điện thoại chi nhánh . ";
            }

            return error;
        }

        private string kiemTraVPDD()
        {
            string error = "";
            bool hopLe = true;

            hopLe = this.txtThemDiaChiVanPhongDaiDien.Text != "";
            if (!hopLe)
            {
                error += "Địa chỉ văn phòng đại diện không được để trống .\n ";
            }
            hopLe = this.txtThemDienThoaiVanPhongDaiDien.Text != "";
            if (!hopLe)
            {
                error += "Bạn chưa nhập điện thoại văn phòng đại diện . ";
            }

            return error;
        }
        #endregion=


        #region "Thêm"
        private void btnThemDiaChiChiNhanh_Click(object sender, EventArgs e)
        {
            string error = kiemTraCN();
            if (error == "")
            {
                string themdiachicn = this.txtThemDiaChiChiNhanh.Text;
                string themdienthoaicn = this.txtThemDienThoaiChiNhanh.Text;               
                
                CNhanh = new ChiNhanhDTO();
                CNhanh.DiaChiChiNhanh = themdiachicn;
                CNhanh.DienThoaiCN = themdienthoaicn;

                CNhanh.MaCongTy = congTy.IDCongTy;
           
                wsDAL.ThemChiNhanh(CNhanh);
                MessageBox.Show("Thêm chi nhánh thành công !", "Thông Báo !", MessageBoxButtons.OK, MessageBoxIcon.Information);

                LayDanhSachChiNhanhMoi();
                

                
           }
           else
                {
                    MessageBox.Show(error, "Báo lỗi !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
        }

        private void btnThemDiaChiVanPhongDaiDien_Click(object sender, EventArgs e)
        {
            string error = kiemTraVPDD();
            if (error == "")
            {
                string themdiachivpdd = this.txtThemDiaChiVanPhongDaiDien.Text;
                string themdienthoaivpdd = this.txtThemDienThoaiVanPhongDaiDien.Text;
                
                
                int macty = congTy.IDCongTy;
                VPDDien = new VanPhongDaiDienDTO();
                VPDDien.DiaChiVanPhongDaiDien = themdiachivpdd;
                VPDDien.DienThoaiVPDD = themdienthoaivpdd;

                VPDDien.MaCongTy = macty;

                wsDAL.ThemVanPhongDaiDien(VPDDien);
                MessageBox.Show("Thêm văn phòng đại diện thành công !", "Thông Báo !", MessageBoxButtons.OK, MessageBoxIcon.Information);
                LayDanhSachVPDDienMoi();
            }
            else
                {
                    MessageBox.Show(error, "Báo lỗi !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
        }
        #endregion


        #region "CellClick"
        private void dtgvDSChiNhanh_CellClick(object sender, DataGridViewCellEventArgs e)
        {

            //Lấy đối tượng chi nhánh từ Danh sách chi nhánh theo vị trí từ bảng danh sách thêm chi nhánh - vp đại diện
            if (e.RowIndex < 0)
                return;
            CNhanh = (ChiNhanhDTO)dSachCNhanh[e.RowIndex];
            TheHienThongTinChiNhanh();

            btnXoaDiaChiChiNhanh.Enabled = true;
        }

        private void dtgvDSVanPhongDaiDien_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            //Lấy đối tượng chi nhánh từ Danh sách văn phòng đại diện theo vị trí từ bảng danh sách thêm chi nhánh - vp đại diện
            if (e.RowIndex < 0)
                return;
            VPDDien = (VanPhongDaiDienDTO)dSachVPDDien[e.RowIndex];
            TheHienThongTinVanPhongDaiDien();

            btnXoaDiaChiVanPhongDaiDien.Enabled = true;

        }
        #endregion


        #region "Hoàn tác"
        private void btnHoanTacDiaChiChiNhanh_Click(object sender, EventArgs e)
        {
            //Gọi lại đối tượng chi nhánh chưa bị thay đổi
            TheHienThongTinChiNhanh();
        }


        private void btnHoanTacDiaChiVanPhongDaiDien_Click(object sender, EventArgs e)
        {
            //Gọi lại đối tượng văn phòng đại diện chưa bị thay đổi
            TheHienThongTinVanPhongDaiDien();
        }
         #endregion


        #region "Cập nhật chỉnh sửa"

        
        private void btnCapNhatDiaChiChiNhanh_Click(object sender, EventArgs e)
        {
            //Cập nhật thông tin chi nhánh mới
            chiNhanhSua.IDChiNhanh = CNhanh.IDChiNhanh;
            chiNhanhSua.MaCongTy = CNhanh.MaCongTy;
            chiNhanhSua.TinhTrangChiNhanh = CNhanh.TinhTrangChiNhanh;
            
            wsDAL.SuaChiNhanh(chiNhanhSua);

            MessageBox.Show("Thông tin chi nhánh đã được cập nhật mới");
            //Làm rỗng các thể hiện thông tin Chi Nhánh sao khi sửa thành công
            LamTrangThongTinChiNhanh();

            //Làm mới lại danh sách Chi Nhánh sao khi Sửa thành công
            LayDanhSachChiNhanhMoi();

            btnHoanTacDiaChiChiNhanh.Enabled = false;
            btnCapNhatDiaChiChiNhanh.Enabled = false;
            btnXoaDiaChiChiNhanh.Enabled = false;
            
        }

        
        private void btnCapNhatDiaChiVanPhongDaiDien_Click(object sender, EventArgs e)
        {

            //Cập nhật thông tin văn phòng đại diện mới
            vanPhongDDSua.IDVanPhongDaiDien = VPDDien.IDVanPhongDaiDien;
            vanPhongDDSua.MaCongTy = VPDDien.MaCongTy;
            vanPhongDDSua.TinhTrangVanPhongDaiDien = VPDDien.TinhTrangVanPhongDaiDien;

            wsDAL.SuaVanPhongDaiDien(vanPhongDDSua);

            MessageBox.Show("Thông tin văn phòng đại diện đã được cập nhật mới");
            //Làm rỗng các thể hiện thông tin văn phòng đại diện sao khi sửa thành công
            LamTrangThongTinVPDDien();

            //Làm mới lại danh sách văn phòng đại diện sao khi Sửa thành công
            LayDanhSachVPDDienMoi();

            btnHoanTacDiaChiVanPhongDaiDien.Enabled = false;
            btnCapNhatDiaChiVanPhongDaiDien.Enabled = false;
            btnXoaDiaChiVanPhongDaiDien.Enabled = false;
        }
         #endregion


        #region "Thể hiện thay đổi Button Cập Nhật, Button Về Đầu"

        //Thể hiện thay đổi Button Cập Nhật, Button Về Đầu
        void TheHienThayDoiChiNhanh(bool thayDoi)
        {
            if (thayDoi == true)
            {
                btnHoanTacDiaChiChiNhanh.Enabled = false;
                btnCapNhatDiaChiChiNhanh.Enabled = false;
            }
            else
            {
                btnHoanTacDiaChiChiNhanh.Enabled = true;
                btnCapNhatDiaChiChiNhanh.Enabled = true;
            }
        }

        //Thể hiện thay đổi Button Cập Nhật, Button Về Đầu
        void TheHienThayDoiVanPhongDaiDien(bool thayDoi)
        {
            if (thayDoi == true)
            {
                btnHoanTacDiaChiVanPhongDaiDien.Enabled = false;
                btnCapNhatDiaChiVanPhongDaiDien.Enabled = false;
            }
            else
            {
                btnHoanTacDiaChiVanPhongDaiDien.Enabled = true;
                btnCapNhatDiaChiVanPhongDaiDien.Enabled = true;
            }
        }
         #endregion


        #region "Xóa"
        private void btnXoaDiaChiChiNhanh_Click(object sender, EventArgs e)
        {
            chiNhanhSua.IDChiNhanh = CNhanh.IDChiNhanh;
            chiNhanhSua.MaCongTy = CNhanh.MaCongTy;
            chiNhanhSua.TinhTrangChiNhanh = CNhanh.TinhTrangChiNhanh;

            wsDAL.XoaChiNhanh(chiNhanhSua);
            MessageBox.Show("Đã xóa chi nhánh thành công");

            //Làm rỗng các thể hiện thông tin Chi Nhánh sao khi sửa thành công
            LamTrangThongTinChiNhanh();

            //Làm mới lại danh sách Chi Nhánh sao khi Sửa thành công
            LayDanhSachChiNhanhMoi();

            btnHoanTacDiaChiChiNhanh.Enabled = false;
            btnCapNhatDiaChiChiNhanh.Enabled = false;
            btnXoaDiaChiChiNhanh.Enabled = false;
            
        }

        
        private void btnXoaDiaChiVanPhongDaiDien_Click(object sender, EventArgs e)
        {
            vanPhongDDSua.IDVanPhongDaiDien = VPDDien.IDVanPhongDaiDien;
            vanPhongDDSua.MaCongTy = VPDDien.MaCongTy;
            vanPhongDDSua.TinhTrangVanPhongDaiDien = VPDDien.TinhTrangVanPhongDaiDien;

            wsDAL.XoaVanPhongDaiDien(vanPhongDDSua);
            MessageBox.Show("Đã xóa văn phòng đại diện thành công");

            //Làm rỗng các thể hiện thông tin Văn phòng đại diện sao khi sửa thành công
            LamTrangThongTinVPDDien();

            //Làm mới lại danh sách Văn phòng đại diện sao khi Sửa thành công
            LayDanhSachVPDDienMoi();

            btnHoanTacDiaChiVanPhongDaiDien.Enabled = false;
            btnCapNhatDiaChiVanPhongDaiDien.Enabled = false;
            btnXoaDiaChiVanPhongDaiDien.Enabled = false;
        }
        #endregion


        #region "Sự kiện Gõ từ bàn phím - Kiểm tra ký tự nhập vào từ bàn phím"
        /*
      * Sự kiện Gõ từ bàn phím
      * Kiểm tra ký tự nhập vào từ bàn phím
      */
        private void txtThemDienThoaiChiNhanh_KeyPress(object sender, KeyPressEventArgs e)
        {
            //Nếu là ký tự chữ và không phải là ký tự backspace thì khóa phím
            if (char.IsLetter(e.KeyChar) == true && e.KeyChar != (char)127)
                e.Handled = true; 
        }

        private void txtHienThiDienThoaiChiNhanh_KeyPress(object sender, KeyPressEventArgs e)
        {
            //Nếu là ký tự chữ và không phải là ký tự backspace thì khóa phím
            if (char.IsLetter(e.KeyChar) == true && e.KeyChar != (char)127)
                e.Handled = true; 
        }

        private void txtHienThiDienThoaiVanPhongDaiDien_KeyPress(object sender, KeyPressEventArgs e)
        {
            //Nếu là ký tự chữ và không phải là ký tự backspace thì khóa phím
            if (char.IsLetter(e.KeyChar) == true && e.KeyChar != (char)127)
                e.Handled = true; 
        }

        private void txtThemDienThoaiVanPhongDaiDien_KeyPress(object sender, KeyPressEventArgs e)
        {
            //Nếu là ký tự chữ và không phải là ký tự backspace thì khóa phím
            if (char.IsLetter(e.KeyChar) == true && e.KeyChar != (char)127)
                e.Handled = true;
        }

        #endregion


        #region "Sự kiện TextChanged"

        private void txtHienThiDiaChiChiNhanh_TextChanged(object sender, EventArgs e)
        {
            chiNhanhSua.DiaChiChiNhanh = txtHienThiDiaChiChiNhanh.Text;
            TheHienThayDoiChiNhanh(chiNhanhSua.DiaChiChiNhanh.Equals(CNhanh.DiaChiChiNhanh));
        }

        private void txtHienThiDienThoaiChiNhanh_TextChanged(object sender, EventArgs e)
        {
            chiNhanhSua.DienThoaiCN = txtHienThiDienThoaiChiNhanh.Text;
            TheHienThayDoiChiNhanh(chiNhanhSua.DienThoaiCN.Equals(CNhanh.DienThoaiCN));
        }

        private void txtHienThiDiaChiVanPhongDaiDien_TextChanged(object sender, EventArgs e)
        {
            vanPhongDDSua.DiaChiVanPhongDaiDien = txtHienThiDiaChiVanPhongDaiDien.Text;
            TheHienThayDoiVanPhongDaiDien(vanPhongDDSua.DiaChiVanPhongDaiDien.Equals(VPDDien.DiaChiVanPhongDaiDien));
        }

        private void txtHienThiDienThoaiVanPhongDaiDien_TextChanged(object sender, EventArgs e)
        {
            vanPhongDDSua.DienThoaiVPDD = txtHienThiDienThoaiVanPhongDaiDien.Text;
            TheHienThayDoiVanPhongDaiDien(vanPhongDDSua.DienThoaiVPDD.Equals(VPDDien.DienThoaiVPDD));
        }

        #endregion

        
    }
}
